LangChain 优化技巧 3
检测并破解
Doom Loop
当 Agent 陷入死循环,如何自动干预
死循环
实时监控
阈值警报
方案重审
(⚆_⚆) 检测到死循环,准备破解!
什么是 Doom Loop
死循环
小修小补
方向错误
重复操作
耗费Token
重复次数:0
Agent 决定了某个方案后
不断小修小补
哪怕方向是错的
也会执着地继续
不会重新思考方案的合理性
最终:浪费大量 Token,任务无法完成
(;´Д`) 这样下去钱包要空了...
解决方案:LoopDetectionMiddleware
循环检测中间件 — 通过工具调用钩子实时追踪
Agent 执行操作
LoopDetectionMiddleware 核心
追踪编辑次数 / 重复操作
超过阈值 → 注入提醒
1
通过工具调用钩子拦截操作
2
追踪每个文件的编辑次数
3
追踪同一操作的重复执行次数
4
超过阈值 → 向上下文追加提醒
# LoopDetectionMiddleware 核心逻辑
class LoopDetection:
  def on_tool_call(self, call):
    self.counts[call.file] += 1
    if self.counts[call.file] > THRESHOLD:
      inject_warning("重审方案")
(。◕‿◕。) 中间件守护,循环无处藏~
超过阈值时的自动干预
重复次数
"考虑重新审视你的方案。"
无检测
$2.40
有检测
$0.60
节省 75%
打破固有思路,重新规划
避免无效循环,节省 Token
提高任务完成率
٩(ˊᗜˋ*)و 省钱又高效,太棒了!
中间件打破 Doom Loop
监控重复 → 超过阈值 → 自动提醒重审
让 Agent 学会在错误中及时刹车
Agent 执行
重复操作
中间件检测
超阈值提醒
重审方案
(๑•̀ㅂ•́)و✧ 智能监控,让Agent更聪明!